{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b6e0a3a2-a35b-46c3-b73f-ffd440a93b3e",
   "metadata": {},
   "source": [
    "\n",
    "检验正态性的QQ图（分位数-分位数图，Quantile-Quantile Plot）通过比较样本数据的分位数与理论正态分布的分位数，判断数据是否服从正态分布。以下是QQ图中散点和直线的具体绘制方法：\n",
    "\n",
    "\n",
    "### **一、散点的绘制步骤**\n",
    "1. **排序样本数据**  \n",
    "   设样本数据为 $ x_1, x_2, \\dots, x_n $，首先将其按从小到大排序，得到有序样本 $ x_{(1)} \\leq x_{(2)} \\leq \\dots \\leq x_{(n)} $。\n",
    "\n",
    "2. **计算样本分位数（实际分位数）**  \n",
    "   每个有序样本 $ x_{(i)} $ 对应一个 **经验分位数**，表示该数据点在样本中的位置。常用的经验分位数计算方法有多种，最常见的是 **Weibull 方法**（避免端点处的极端值问题）：  \n",
    "   $$\n",
    "   p_i = \\frac{i - 0.5}{n}, \\quad i = 1, 2, \\dots, n\n",
    "   $$ \n",
    "   其中 $ p_i $ 表示 $ x_{(i)} $ 以下数据占比的估计值（介于 $ 0 $ 和 $ 1 $ 之间）。\n",
    "\n",
    "3. **计算理论正态分位数**  \n",
    "   根据标准正态分布 $ N(0, 1) $，计算 $ p_i $ 对应的 **理论分位数** $ z_i $，即标准正态分布的逆累积分布函数（分位数函数）：  \n",
    "   $$\n",
    "   z_i = \\Phi^{-1}(p_i)\n",
    "   $$ \n",
    "   其中 $ \\Phi^{-1} $ 是标准正态分布的分位数函数（可通过统计软件或查表得到）。\n",
    "\n",
    "4. **绘制散点**  \n",
    "   以理论正态分位数 $ z_i $ 为横坐标，样本数据 $ x_{(i)} $ 为纵坐标，绘制点 $ (z_i, x_{(i)}) $，得到QQ图的散点。\n",
    "\n",
    "\n",
    "### **二、直线的绘制方法**\n",
    "QQ图中的直线代表“数据服从正态分布”时的理想趋势，通常有两种绘制方式：\n",
    "\n",
    "#### **1. 基于样本均值和标准差的直线（推荐）**  \n",
    "若数据服从正态分布 $ N(\\mu, \\sigma^2) $，则样本分位数应近似满足：  \n",
    "$$\n",
    "x_{(i)} \\approx \\mu + \\sigma \\cdot z_i\n",
    "$$ \n",
    "因此，直线方程为：  \n",
    "$$\n",
    "y = \\hat{\\mu} + \\hat{\\sigma} \\cdot x\n",
    "$$ \n",
    "其中：  \n",
    "- $ \\hat{\\mu} $ 是样本均值（$ \\hat{\\mu} = \\frac{1}{n}\\sum_{i=1}^n x_i $），  \n",
    "- $ \\hat{\\sigma} $ 是样本标准差（$ \\hat{\\sigma} = \\sqrt{\\frac{1}{n-1}\\sum_{i=1}^n (x_i - \\hat{\\mu})^2} $）。  \n",
    "这条直线通过调整标准正态分位数（均值0，标准差1）至样本数据的位置（均值$\\hat{\\mu}$，标准差$\\hat{\\sigma}$），直观反映数据与正态分布的偏离程度。\n",
    "\n",
    "#### **2. 最小二乘拟合直线（回归直线）**  \n",
    "通过对散点 $ (z_i, x_{(i)}) $ 进行最小二乘回归，拟合直线 $ y = a + b \\cdot x $，其中：  \n",
    "- 斜率 $ b $ 是样本分位数对理论分位数的回归系数，  \n",
    "- 截距 $ a $ 是回归常数项。  \n",
    "这种方法更严格地拟合数据趋势，但实际解释时，斜率和截距可近似对应样本的标准差和均值（当数据接近正态时）。\n",
    "\n",
    "\n",
    "### **三、QQ图的解读**  \n",
    "- **散点趋势**：若数据严格服从正态分布，散点应大致分布在直线上；  \n",
    "- **偏离情况**：  \n",
    "  - 散点向上弯曲：数据尾部比正态分布更重（右偏或左偏）；  \n",
    "  - 散点向下弯曲：数据尾部比正态分布更轻；  \n",
    "  - 整体偏离直线：数据可能存在偏态或方差不一致。\n",
    "\n",
    "\n",
    "### **四、示例（假设样本量 $ n=5 $）**  \n",
    "1. 样本数据：$ [3, 5, 2, 7, 4] $，排序后：$ [2, 3, 4, 5, 7] $；  \n",
    "2. 计算 $ p_i = (i-0.5)/5 $，得到 $ p = [0.1, 0.3, 0.5, 0.7, 0.9] $；  \n",
    "3. 理论分位数 $ z_i = \\Phi^{-1}(p_i) $（如 $ \\Phi^{-1}(0.1) \\approx -1.282 $，$ \\Phi^{-1}(0.5) = 0 $）；  \n",
    "4. 直线方程：$ \\hat{\\mu}=4.2 $，$ \\hat{\\sigma}=1.924 $，直线为 $ y = 4.2 + 1.924x $。\n",
    "\n",
    "\n",
    "### **总结**  \n",
    "QQ图通过“样本分位数 vs 理论正态分位数”的散点和拟合直线，直观检验正态性。散点越贴近直线，数据越接近正态分布。实际绘制时，理论分位数的计算（如 $ p_i $ 的调整方法）和直线的定义（均值+标准差或回归直线）可能因软件（如R、Python）略有差异，但核心思想一致。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "00e330d6-c327-466a-b047-319f9d47ac14",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
